Complex systems have become ubiquitous in modern society, and touch every aspect of our lives. For example, a typical person may require a prescription for drugs manufactured using a complex chemical manufacturing process. In order to purchase the drug, that same person may then drive to work each day on a complex system of streets, highways, and interchanges. If that person decides to travel on a longer trip, he or she may be a passenger in a complex vehicle, such as an airplane, with thousands of interconnected parts. Even as systems that are used every day become more complex, however, these systems are more and more difficult to understand by the people who are responsible for their use and maintenance.
One type of system that is particularly complex, and yet common to people of all walks of life, is the electronic communication network. An electronic communication network may employ a variety of different devices, communication techniques, and communication media. For example, a communication network may allow the user to wirelessly transmit analog voice information from a laptop computer or personal digital assistant computer (PDA) to a base transceiver station using radio signals from a wireless modem card installed in the laptop computer or PDA. Alternately, the user may send an electronic mail message from a laptop or PDA to a wireless telephone using infrared signals, and have the wireless telephone then relay the message to a base transceiver. The base transceiver station may then convert the information carried on the received electromagnetic signals into electrical signals carried by conductive wiring, or into optical signals carried by fiber optic cable. In route to their intended destination, both the voice information and the electronic mail message may pass through a variety of routers for routing data between various portions of the network, firewalls to prevent unauthorized access to various portions of the network, and signaling gateways. Either communication may also make use of a gateway general support node for assigning IP addresses to users, a home location register containing the subscriber parameters for the user, a message store for archiving electronic mail messages, a compression service center for compressing data, a dispatcher for establishing a secure channel for the user and assigning the user to an agent, and an agent serving as a proxy for the user. Depending upon the communication configuration selected for or by the user, either communication from the user may employ different combinations of these and other devices.
Because of the complexity of various modern systems, it has become difficult for even those people who are responsible for managing these systems to fully understand them. To address this problem, some have developed simulation software tools. These simulation tools allow a user to virtually simulate a system, in order to determine how the real system would actually operate. More particularly, these tools allow a user to provide different inputs to the system, in order to simulate different outputs from the system. For example, the SPICE software application allows users to simulate the operation of electronic circuits. The user can simulate a desired circuit, provide a typical input for the simulated circuit, and the tool will provide the user with the output signal that the real circuit would produce.
Still other software tools have been developed to graphically display a system. These tools allow the user to better visualize the relationship between the various components of the system. For example, the AUTOCAD software tool will allow a user to graphically represent some components of various systems, such as an electrical circuit or an electronic communication network. While these types of tools may be useful in helping a user to understand the overall relationship between different components of a system, these tools are not as helpful for a user trying to understand the role each component plays in the system. That is, these tools do not provide information describing the function or operation of the individual components of the system. Further, these tools do not help a user to understand the costs associated with different configurations of a system, or how different types of input are processed by the various components of the system.